//
//  StatusCellPictureView.swift
//  微博项目
//
//  Created by mac on 16/1/25.
//  Copyright © 2016年 mac. All rights reserved.
//

import UIKit


private let pictureCellMargin: CGFloat = 5
class StatusCellPictureView: UICollectionView {

    //定义外部变量
    var imageURLs:[NSURL]?{
        didSet {
        //计算配图视图的大小
            let pSize = getPictureViewSize()
            //更新约束
            self.snp_updateConstraints { (make) -> Void in
                make.size.equalTo(pSize)
            }
            
            reloadData()
        
        }
    
    }
    
    /*
    单图会按照图片等比例显示
    多图的图片大小固定
    多图如果是4张，会按照 2 * 2 显示
    多图其他数量，按照 3 * 3 九宫格显示
    */
    
    private func getPictureViewSize() -> CGSize {
    let imageCount = imageURLs?.count ?? 0
        //没有配图视图
        if imageCount == 0{
        return CGSizeZero
        }
        
        //---------获取集合视图的布局对象
        let layout = self.collectionViewLayout as! UICollectionViewFlowLayout
        //单张视图  1.单图会按照图片等比例显示
        if imageCount == 1{
        //等比例显示图片
            //先给定固定尺寸 后期做活
           let itemSize = CGSize(width: 200, height: 200)
           layout.itemSize = itemSize
        return itemSize
        }
        
        //2.多图的图片大小固定
        let itemWith = (KWidth - StatusCellMargin * 2 - pictureCellMargin * 2)/3
        //设置多张图片的itemSize
        layout.itemSize = CGSizeMake(itemWith, itemWith)
        
        //3.多图如果是4张，会按照 2 * 2 显示
        
        if imageCount == 4{
        
            let w = 2 * itemWith + pictureCellMargin
            return CGSizeMake(w, w)
        }
        
        //4.多图其他数量，按照 3 * 3 九宫格显示
        //程序走到这里  2, 3, 5,6,7,8,9
        /*
        1,2,3   ==> 1
        4,5,6   ==> 2
        7,8,9   ==> 3
        */
        
        //确定行数
        let row = CGFloat((imageCount - 1)/3 + 1)
        
        //计算最大宽度
        let maxW = itemWith * 3 + 2 * pictureCellMargin
        let maxH = itemWith * row + (row - 1) * pictureCellMargin
        
        return CGSizeMake(maxW, maxH)
    }
    override init(frame: CGRect, collectionViewLayout layout: UICollectionViewLayout) {
        let layout = UICollectionViewFlowLayout()
        super.init(frame: frame, collectionViewLayout: layout)
        setupUI()
    }
    
    required init?(coder aDecoder: NSCoder) {
        fatalError("init(coder:) has not been implemented")
    }
}
private func setupUI(){


}

//private lazy var textLabel: UILabel = UILabel(title: "", fontSize: 40, color: UIColor.blueColor())